package roborally.program.commands;

import roborally.model.Robot;
import roborally.program.ProgramElement;

/**
 * A class for dealing with the commands of a program.  
 * 
 * @version	1.0
 * @author  Pieter Robberechts	(1e Bach Informatica)
 * @author	Jeroen Sanders		(1e Bach Informatica)
 *
 */
public abstract class Command extends ProgramElement {

	/**
	 * Initialize this new command with a line number.
	 */
	public Command(int lineNb) {
		super(lineNb);
	}

	/**
	 * Return the next basic command for a robot, given the last executed line number. 
	 * 
	 * @param 	lineNb
	 * 			The last line number of the last executed command.	
	 * @param 	robot
	 * 			Select the next basic command for this robot.
	 */
	public abstract BasicCommand getNextBasicCommand(int lineNb, Robot robot);
	
}